Update magellan to read track data into correct internal structure.
authorrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Fri, 15 Nov 2002 03:37:50 +0000 (03:37 +0000)
committerrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Fri, 15 Nov 2002 03:37:50 +0000 (03:37 +0000)
Modify GPX code to to call headers.
Let main default to waypoint processing.
Start adding reference files for tracks.

gpsbabel/defs.h
gpsbabel/gpx.c
gpsbabel/magproto.c
gpsbabel/main.c
gpsbabel/reference/track/chi-mapsend.trk [new file with mode: 0644]
gpsbabel/reference/track/meridian.trk [new file with mode: 0644]

index 20e020dc5880360a71c39ebfb1eba29a122f4de4..6fa85c6ef7ed0c2f61759bdbd4ad011dc610000d 100644 (file)
@@ -65,7 +65,7 @@ typedef struct {
  * protocol for a receiver, like the Magellan serial data.
  */
 typedef enum {
-       trkdata = 0 ,
+       trkdata = 1 ,
        wptdata,
        rtedata
 } gpsdata_type;
index d51ef0789224566a088ab90cc0d4a4e646b71633..b0ebb0ded2b1a3faa161e8085e254b2ee35323ce 100644 (file)
@@ -401,9 +401,11 @@ gpx_write(void)
        fprintf(ofd, "xsi:schemaLocation=\"http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd\">\n");
 
        switch(global_opts.objective) {
-               case trkdata: gpx_track_pr();
-               default:
+               case trkdata: gpx_track_pr(); 
                case wptdata: waypt_disp_all(gpx_waypt_pr);
+                             break;
+               default:
+                             break;
        }
 
        fprintf(ofd, "</gpx>\n");
index 4d04a858faf1f690952bb2c48d67b6ae9c6565fe..c8fb6f9647ce8c8aed989212ba3a1f234802058e 100644 (file)
@@ -73,7 +73,7 @@ static int last_rx_csum;
 static int found_done;
 static int got_version;
 static int is_file = 0;
-
+static route_head *trk_head;
 
 static waypoint * mag_wptparse(char *);
 typedef char * (cleanse_fn) (char *);
@@ -382,7 +382,7 @@ mag_readmsg(void)
        } 
        if (strncmp(ibuf, "$PMGNTRK,", 7) == 0) {
                waypoint *wpt = mag_trkparse(ibuf);
-               waypt_add(wpt);
+               route_add_wpt(trk_head, wpt);
        } 
        if (IS_TKN("$PMGNVER,")) {
                mag_verparse(ibuf);
@@ -914,18 +914,22 @@ mag_wptparse(char *trkmsg)
 static void
 mag_read(void)
 {
-       if (!is_file) {
-               switch (global_opts.objective)
-               {
-                       case trkdata:
+       switch (global_opts.objective)
+       {
+               case trkdata:
+                       trk_head = route_head_alloc();
+                       route_add_head(trk_head);
+
+                       if (!is_file) 
                                mag_writemsg("PMGNCMD,TRACK,2");
-                               break;
-                       case wptdata:
+
+                       break;
+               case wptdata:
+                       if (!is_file) 
                                mag_writemsg("PMGNCMD,WAYPOINT");
-                               break;
-                       default:
-                               fatal(MYNAME ": Routes are not yet supported\n");
-               }
+                       break;
+               default:
+                       fatal(MYNAME ": Routes are not yet supported\n");
        }
 
        while (!found_done)
index 10f764efef255313d1a1a913183625572c2af2c8..be33f64b60573bf6d9321c0d541e42d0958ceb26 100644 (file)
@@ -44,6 +44,8 @@ main(int argc, char *argv[])
        char *ivec_opts = NULL;
        char *ovec_opts = NULL;
 
+       global_opts.objective = wptdata;
+
        waypt_init();
        route_init();
 
diff --git a/gpsbabel/reference/track/chi-mapsend.trk b/gpsbabel/reference/track/chi-mapsend.trk
new file mode 100644 (file)
index 0000000..1de2428
Binary files /dev/null and b/gpsbabel/reference/track/chi-mapsend.trk differ
diff --git a/gpsbabel/reference/track/meridian.trk b/gpsbabel/reference/track/meridian.trk
new file mode 100644 (file)
index 0000000..abcb1a4
--- /dev/null
@@ -0,0 +1,64 @@
+$PMGNTRK,3003.731,N,09136.621,W,00001,M,170621.25,A,,250502*6A\r
+$PMGNTRK,3003.767,N,09136.634,W,00000,M,170955.19,A,,250502*6F\r
+$PMGNTRK,3003.762,N,09136.496,W,00000,M,171200.20,A,,250502*60\r
+$PMGNTRK,3003.740,N,09136.443,W,00000,M,171248.75,A,,250502*64\r
+$PMGNTRK,3003.692,N,09136.317,W,00000,M,171441.20,A,,250502*63\r
+$PMGNTRK,3003.587,N,09135.964,W,00000,M,171716.20,A,,250502*68\r
+$PMGNTRK,3003.468,N,09135.801,W,00000,M,171746.20,A,,250502*6F\r
+$PMGNTRK,3003.323,N,09135.694,W,00000,M,171820.81,A,,250502*61\r
+$PMGNTRK,3003.233,N,09135.557,W,00000,M,171901.20,A,,250502*64\r
+$PMGNTRK,3002.984,N,09135.385,W,00000,M,172046.25,A,,250502*67\r
+$PMGNTRK,3002.941,N,09135.393,W,00000,M,172110.25,A,,250502*6B\r
+$PMGNTRK,3002.928,N,09135.576,W,00000,M,172151.37,A,,250502*6F\r
+$PMGNTRK,3002.774,N,09135.787,W,00000,M,172235.20,A,,250502*63\r
+$PMGNTRK,3002.731,N,09135.923,W,00000,M,172308.56,A,,250502*6C\r
+$PMGNTRK,3002.838,N,09136.016,W,00000,M,180423.93,A,,250502*6C\r
+$PMGNTRK,3002.820,N,09135.978,W,00002,M,180604.92,A,,250502*63\r
+$PMGNTRK,3002.786,N,09135.968,W,00000,M,180706.92,A,,250502*60\r
+$PMGNTRK,3002.772,N,09135.937,W,00001,M,180818.92,A,,250502*60\r
+$PMGNTRK,3002.782,N,09135.864,W,00000,M,181020.92,A,,250502*6B\r
+$PMGNTRK,3002.781,N,09135.830,W,00000,M,181109.93,A,,250502*62\r
+$PMGNTRK,3002.807,N,09135.780,W,00000,M,181218.92,A,,250502*65\r
+$PMGNTRK,3002.847,N,09135.712,W,00000,M,181422.93,A,,250502*64\r
+$PMGNTRK,3002.868,N,09135.686,W,00002,M,181504.93,A,,250502*62\r
+$PMGNTRK,3002.895,N,09135.645,W,00001,M,181614.93,A,,250502*6E\r
+$PMGNTRK,3002.921,N,09135.628,W,00001,M,181701.93,A,,250502*6E\r
+$PMGNTRK,3002.961,N,09135.631,W,00000,M,181807.94,A,,250502*6D\r
+$PMGNTRK,3003.019,N,09135.639,W,00002,M,181951.94,A,,250502*62\r
+$PMGNTRK,3003.047,N,09135.647,W,00000,M,182039.94,A,,250502*66\r
+$PMGNTRK,3003.074,N,09135.662,W,00000,M,182124.93,A,,250502*6B\r
+$PMGNTRK,3003.108,N,09135.662,W,00000,M,182217.94,A,,250502*65\r
+$PMGNTRK,3003.133,N,09135.680,W,00000,M,182318.93,A,,250502*68\r
+$PMGNTRK,3003.181,N,09135.681,W,00000,M,182437.94,A,,250502*6D\r
+$PMGNTRK,3003.292,N,09135.712,W,00006,M,182813.95,A,,250502*6A\r
+$PMGNTRK,3003.224,N,09135.696,W,00002,M,183136.94,A,,250502*60\r
+$PMGNTRK,3003.191,N,09135.687,W,00000,M,183256.95,A,,250502*6B\r
+$PMGNTRK,3003.158,N,09135.690,W,00000,M,183402.95,A,,250502*6F\r
+$PMGNTRK,3003.147,N,09135.726,W,00000,M,183603.95,A,,250502*6E\r
+$PMGNTRK,3003.149,N,09135.758,W,00000,M,183648.96,A,,250502*65\r
+$PMGNTRK,3003.159,N,09135.807,W,00001,M,183752.96,A,,250502*6A\r
+$PMGNTRK,3003.188,N,09135.871,W,00000,M,183918.95,A,,250502*65\r
+$PMGNTRK,3003.217,N,09135.878,W,00000,M,184015.96,A,,250502*69\r
+$PMGNTRK,3003.238,N,09135.866,W,00006,M,184125.96,A,,250502*6F\r
+$PMGNTRK,3003.217,N,09135.885,W,00000,M,184237.96,A,,250502*69\r
+$PMGNTRK,3003.192,N,09135.875,W,00000,M,184401.96,A,,250502*6B\r
+$PMGNTRK,3003.169,N,09135.851,W,00000,M,184553.96,A,,250502*6F\r
+$PMGNTRK,3003.154,N,09135.816,W,00000,M,184654.96,A,,250502*66\r
+$PMGNTRK,3003.140,N,09135.786,W,00000,M,184742.97,A,,250502*62\r
+$PMGNTRK,3003.135,N,09135.741,W,00000,M,184841.96,A,,250502*66\r
+$PMGNTRK,3003.133,N,09135.701,W,00000,M,184952.97,A,,250502*66\r
+$PMGNTRK,3003.113,N,09135.682,W,00000,M,185049.97,A,,250502*6C\r
+$PMGNTRK,3003.063,N,09135.664,W,00000,M,185214.97,A,,250502*68\r
+$PMGNTRK,3003.034,N,09135.654,W,00000,M,185256.98,A,,250502*60\r
+$PMGNTRK,3003.011,N,09135.646,W,00000,M,185338.98,A,,250502*6D\r
+$PMGNTRK,3002.946,N,09135.623,W,00000,M,185511.97,A,,250502*66\r
+$PMGNTRK,3002.907,N,09135.655,W,00000,M,185632.98,A,,250502*6F\r
+$PMGNTRK,3002.885,N,09135.685,W,00000,M,185724.97,A,,250502*60\r
+$PMGNTRK,3002.850,N,09135.727,W,00007,M,185840.98,A,,250502*64\r
+$PMGNTRK,3002.824,N,09135.760,W,00000,M,185928.98,A,,250502*6C\r
+$PMGNTRK,3002.798,N,09135.796,W,00000,M,190022.98,A,,250502*6A\r
+$PMGNTRK,3002.784,N,09135.859,W,00000,M,190141.98,A,,250502*6F\r
+$PMGNTRK,3002.774,N,09135.908,W,00000,M,190248.99,A,,250502*6E\r
+$PMGNTRK,3002.779,N,09135.938,W,00000,M,190343.98,A,,250502*6B\r
+$PMGNTRK,3002.807,N,09135.957,W,00000,M,190449.99,A,,250502*68\r
+$PMGNTRK,3002.828,N,09135.980,W,00000,M,190557.98,A,,250502*60\r